import os

from loguru import logger

from app.config import settings

def setup_logging():
    # 配置日志
    log_dir = os.path.join(settings.BASE_DIR, 'logs')
    os.makedirs(log_dir, exist_ok=True)

    # 移除控制台输出
    # logger.remove(handler_id=None)

    # 错误专用日志
    logger.add(
        os.path.join(log_dir, "log_{time:YYYYMMDD}.log"),  # 按日期命名
        rotation="1 MB",  # 文件达到 1MB 后滚动
        retention="3 days",  # 保留最近 10 天的日志
        compression="zip",  # 旧日志自动压缩（可选）
        enqueue=True, # 确保线程安全
        level="ERROR",  # 只记录 ERROR 及以上级别
        encoding="utf-8",
        format="\n记录时间：{time:YYYY-MM-DD HH:mm:ss}\n线程ID：{thread}\n日志级别：{level}\n出错类：{name}\n错误描述：{message}\n",
    )